package com.imti.handlerdemo;

import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import java.util.Arrays;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class GifActivity extends AppCompatActivity
{

    private List<Integer> imageList = Arrays.asList(
        R.mipmap.img_miao1, R.mipmap.img_miao2, R.mipmap.img_miao3
        , R.mipmap.img_miao4, R.mipmap.img_miao5, R.mipmap.img_miao6
        , R.mipmap.img_miao7, R.mipmap.img_miao8, R.mipmap.img_miao9
        , R.mipmap.img_miao10, R.mipmap.img_miao11, R.mipmap.img_miao12
        , R.mipmap.img_miao13, R.mipmap.img_miao14, R.mipmap.img_miao15
        , R.mipmap.img_miao16, R.mipmap.img_miao17, R.mipmap.img_miao18
        , R.mipmap.img_miao19, R.mipmap.img_miao20, R.mipmap.img_miao21
        , R.mipmap.img_miao22, R.mipmap.img_miao23, R.mipmap.img_miao24
        , R.mipmap.img_miao25, R.mipmap.img_miao26);

    private Handler mHandler;

    private int index = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gif);

        initView();
    }

    private void initView()
    {
        ImageView imageGif = findViewById(R.id.image_gif);

        mHandler = new Handler(Looper.getMainLooper());
//        {
//            @Override
//            public void handleMessage(@NonNull Message msg)
//            {
//                super.handleMessage(msg);
//
//                switch (msg.what)
//                {
//                    case 0xf2:
//                        imageGif.setImageResource(
//                            imageList.get(index++ % imageList.size()));
//                        break;
//                }
//            }
//        };

        new Timer().schedule(new TimerTask()
        {
            @Override
            public void run()
            {
//                mHandler.obtainMessage(0xf2).sendToTarget();

                //子线程执行区域
                //早期线程切换
//                mHandler.post(new Runnable()
//                {
//                    @Override
//                    public void run()
//                    {
//                        //主线程执行区域
//                        imageGif.setImageResource(
//                            imageList.get(index++ % imageList.size()));
//                    }
//                });
                //因为在应用内，主线程有且只有一个
                //故，可以不进行Handler对象的创建
                //常用的子线程切换主线程（推荐）
                runOnUiThread(new Runnable()
                {
                    @Override
                    public void run()
                    {
                        imageGif.setImageResource(
                            imageList.get(index++ % imageList.size()));
                    }
                });
            }
        }, 0, 100);
    }


}